import request from './axios.js'

/**
 * 处方管理API接口
 */
const prescriptionApi = {
  /**
   * 根据ID查询处方记录
   * @param {Number} id - 处方ID
   * @returns {Promise}
   */
  getById: (id) => {
    return request.get(`/prescriptions/${id}`)
  },

  /**
   * 查询所有处方记录
   * @returns {Promise}
   */
  getAll: () => {
    return request.get('/prescriptions')
  },

  /**
   * 根据条件查询处方记录
   * @param {Object} params - 查询条件
   * @returns {Promise}
   */
  getByCondition: (params) => {
    return request.post('/prescriptions/search', params)
  },

  /**
   * 分页查询处方记录
   * @param {Number} pageNum - 页码
   * @param {Number} pageSize - 每页大小
   * @param {Object} params - 其他查询参数
   * @returns {Promise}
   */
  getByPage: (pageNum, pageSize, params = {}) => {
    return request.get('/prescriptions/page', {
      params: {
        pageNum,
        pageSize,
        ...params
      }
    })
  },

  /**
   * 统计处方记录总数
   * @returns {Promise}
   */
  countAll: () => {
    return request.get('/prescriptions/count')
  },

  /**
   * 根据条件统计处方数量
   * @param {Object} params - 查询条件
   * @returns {Promise}
   */
  countByCondition: (params) => {
    return request.post('/prescriptions/count', params)
  },

  /**
   * 新增处方记录
   * @param {Object} data - 处方信息
   * @returns {Promise}
   */
  save: (data) => {
    return request.post('/prescriptions', data)
  },

  /**
   * 批量新增处方记录
   * @param {Array} list - 处方列表
   * @returns {Promise}
   */
  saveBatch: (list) => {
    return request.post('/prescriptions/batch', list)
  },

  /**
   * 根据ID更新处方记录
   * @param {Number} id - 处方ID
   * @param {Object} data - 处方信息
   * @returns {Promise}
   */
  updateById: (id, data) => {
    return request.put(`/prescriptions/${id}`, data)
  },

  /**
   * 根据ID删除处方记录
   * @param {Number} id - 处方ID
   * @returns {Promise}
   */
  removeById: (id) => {
    return request.delete(`/prescriptions/${id}`)
  },

  /**
   * 批量删除处方记录
   * @param {Array} ids - 处方ID列表
   * @returns {Promise}
   */
  removeByIds: (ids) => {
    return request.delete('/prescriptions/batch', {
      data: ids
    })
  },

  /**
   * 根据挂号ID获取处方记录
   * @param {Number} registerId - 挂号ID
   * @returns {Promise}
   */
  getByRegisterId: (registerId) => {
    return request.get('/prescriptions', {
      params: {
        registerId
      }
    })
  }
}

export default prescriptionApi